This page last changed on Feb 10, 2011 by kgomes.
Deprecation Warning

I am keeping this document around for historical purposes, but it references the original Crowd installation. In February of 2011, we upgraded Crowd and moved it to its own virtual machine in the DMZ. The instructions for that move are here

Deployment Diagram

The following is a deployment diagram of the Crowd server(s) at MBARI.

The important things to note are:

  • The crowd server (oceana.mbari.org) is located in the DMZ
  • It connects to a database running on solstice.shore.mbari.org.
  • It uses the SHORE domain account DB_Collaboration to connect to the database server on solstice.shore.mbari.org
  • It uses the "Crowd" database located on the Microsoft SQL Server 2000 server running on solstice.shore.mbari.org

The steps taken to install crowd on oceana.mbari.org were the following:

  1. Create a database called "crowd" on the SQL Server solstice.shore.mbari.org.
  2. Give the SHORE domain user "DB_Collaboration" full privs on the "crowd" database. The DB_Collaboration account should not be the database owner, but should have the db_owner role.
  3. Make sure Java is installed on oceana.mbari.org and that it meets the minimum requirements for the crowd application.
  4. I create a symbolic link from the installed java to /opt/java so that I can just change the symbolic link to point to a new java installation when I want to upgrade.
  5. I set an environment variable for JAVA_HOME and point it to /opt/java. This is done by adding:
    JAVA_HOME=/opt/java
    
    export JAVA_HOME
    

    to the /etc/profile.

  6. Register with Atlassian for the community/non-profit license for crowd (I did that under an account associated with my email kgomes@mbari.org).
  7. Once you have the license key, download the latest version of Crowd from Atlassian's website (it comes as a tar.gz file) and copy to oceana.mbari.org.
  8. Log in to oceana.mbari.org as root.
  9. Copy the file to the /opt directory.
  10. Untar and unzip the file using:
    gunzip atlassian-crowd-1.5.1.tar.gz
    

    followed by:

    tar -xvf atlassian-crowd-1.5.1.tar
    
  11. This creates a new folder with the contents of the Crowd application.
  12. I usually cleanup the /opt directory by either deleting or moving the .tar file.
  13. I create a symbolic link from the installed crowd to /opt/crowd so that I can just change the symbolic link to point to a new crowd installation when I want to upgrade.
  14. Now, in general I follow the installation instructions given at Atlassian's website, but I have included the steps here to clarify for our installation.
  15. In order to get this to work with MS SQL Server, I downloaded the jtds-1.2.jar file from http://jtds.sourceforge.net/ and installed it in /opt/crowd/crowd-webapp/WEB-INF/lib so that the correct JDBC driver will be available on the Java classpath.
  16. I then edited the /opt/crowd/crowd-webapp/WEB-INF/classes/crowd-init.properties to look like the following:
    crowd-init.properties
    ## You can specify your crowd.home property here or in your system environment variables.
    
    ###############
    ##           ##
    ##  WINDOWS  ##
    ##           ##
    ###############
    ## On Windows-based operating systems, uncomment the following
    ## line and set crowd.home to a directory Crowd should use to
    ## store its configuration.
    ## NOTE: use forward slashes instead of backward slashes.
    
    #crowd.home=c:/data/crowd-home
    
    
    ###############
    ##           ##
    ##  UNIX     ##
    ##           ##
    ###############
    ## On Unix-based operating systems, uncomment the following
    ## line and set crowd.home to a directory Crowd should use to
    ## store its configuration.
    
    crowd.home=/data/crowd
    
  17. After editing the crowd-init.properties, I want to make sure the account for DB_Collaboration has rights to the crowd installation, so I cd to /opt and run:
    chown -R DB_Collaboration:coladm atlassian-crowd-1.5.1
    
  18. Then I create a new file in the /etc/init.d directory to server as the startup/shutdown script for crowd. The file contents look like:
    /etc/init.d/crowd
    #!/bin/sh
    # chkconfig: 3 60 30
    # description: Starts and stops Atlassian Crowd (running as DB_Collaboration)
    
    mode=$1
    
    export CATALINA_HOME=/opt/crowd/apache-tomcat
    export JAVA_HOME=/opt/java
    
    case "$mode" in
       'start')
         # Change to the crowd directory
         cd /opt/crowd
         # Start daemon
         su -c "$CATALINA_HOME/bin/catalina.sh $mode" DB_Collaboration
         ;;
    
       'stop')
         # Stop daemon. We use a signal here to avoid having to know the
         # root password.
             $CATALINA_HOME/bin/catalina.sh $mode
         ;;
    
       *)
         # usage
         echo "usage: $0 start|stop"
         exit 1
         ;;
    esac
    
  19. I then put a symbolic link in the /etc/rc.d/rc5.d directory named "S59crowd" that points to /etc/init.d/crowd and another symbolic link named "K07crowd" in the /etc/rc.d/rc4.d so that crowd would be shutdown and started on reboot of the linux machine.
  20. I then started crowd by going to the /etc/init.d directory and running:
    ./crowd start
    
  21. This starts the crowd application and then you will want to go to http://oceana.mbari.org:8095/crowd to start the setup wizard.
  22. TODO: kgomes I need to document how I connected this to the MBARI LDAP directory

Upgrade from 1.5.1 to 1.6

On December 29, 2009, I upgraded Crowd from 1.5.1 to 1.6 mostly because of the improved performance they touted with 1.6. Crowd always seemed to be the slow link in the way I had things configured, so I was interested to see if 1.6 really made a difference. Atlassian's instruction for Crowd 1.3 or later are here:

http://confluence.atlassian.com/display/CROWD/Upgrading+from+Crowd+1.3.0+or+Later

Here are the specifics for what we have in house:

  1. I first logged in to my Atlassian account to make sure our license was still valid. It is good until Feb 2009, so I went ahead and downloaded the Linux tar.gz of 1.6
  2. I copied it to oceana.mbari.org and put it in /opt
  3. I then unzipped/untarred the application there
  4. I backed up the Crowd database on solstice.shore.mbari.org:
    1. Start up Enterprise Manager in Windows
    2. Connect to solstice.shore.mbari.org (I had to connect as DB_Collaboration to get this to work)
    3. Right-click on Crowd database and select All Tasks->Backup Database...
    4. Select Database-complete
    5. Click on Add... under Destination
    6. I typed in a file location of \\tempest\tempbox\kgomes\backups\crowd\db_backup as the file to backup to.
    7. I then created a new tar.gz file for the /opt/atlassian-crowd-1.5.1 installation and put in the same backup location on tempest.
    8. I then created a new tar.gz file for the crowd home directory /data/crowd and put in same tempest location
  5. I copied the jtds-1.2.jar from /opt/atlassian-crowd-1.5.1/crowd-webapp/WEB-INF/lib to the same directory in the new installation
  6. I then edited the /opt/atlassian-crowd-1.6/crowd-webapp/WEB-INF/classes/crowd-init.properties and pointed the crowd home directory to /data/crowd
  7. I then copied the updated crowd client jar (/opt/atlassian-crowd-1.6/client/crowd-integrations-client-1.6.jar) to /opt/confluence/confluence/WEB-INF/lib and to /opt/jira/atlassian-jira/WEB-INF/lib (I removed the old ones too IMPORTANT!)
  8. I downloaded the recommended crowd-ehcache.xml file from the instructions listed above and copied to the /opt/confluence/confluence/WEB-INF/classes and /opt/jira/atlassian-jira/WEB-INF/classes directories
  9. Lastly I changed the /opt/crowd symbolic link to point to the new crowd installation, shut down confluence, jira, and crowd and restarted crowd.
  10. After the successful start up of the three applications, I put all the backup files in Alfresco here

Crowd Deployment.jpg (image/jpeg)
Crowd Deployment.zip (application/zip)
Document generated by Confluence on Feb 03, 2026 16:22